package com.xt.core.helper.filter;

import org.springframework.orm.hibernate3.support.OpenSessionInViewFilter;
import org.hibernate.*;
import org.springframework.dao.*;

public class AppSessionFilter extends OpenSessionInViewFilter {
    /*
     * The default mode is FlushMode.NEVER
     *
     * @see org.springframework.orm.hibernate.support.OpenSessionInViewFilter#getSession(net.sf.hibernate.SessionFactory)
     */
    protected Session getSession(SessionFactory sessionFactory)
                        throws DataAccessResourceFailureException {
        Session session = super.getSession(sessionFactory);
        session.setFlushMode(FlushMode.COMMIT);   
        return session; 
    }
   
    /**
    * we do an explicit flush here just in case we do not have an automated flush
    */
    protected void closeSession(Session session, SessionFactory factory) {
    	
    	super.closeSession(session, factory);
    	
//		now flush moved  to BasicDaoImpl.saveorupdate()    	
//    	try{
//    		session.flush(); 
//    		super.closeSession(session, factory);
//    	}catch(Exception e){
//			this.logger.error("can not !");
//	        super.closeSession(session, factory);
//		}
    }
}